1. Field of the Invention
The present invention relates to a method and a system for facilitating calibration of a robot cell including one or more objects and an industrial robot performing work in connection to the objects, wherein the robot cell is programmed by means of an off-line programming tool.
The invention relates to the area of off-line to on-line programming, when a user has programmed or adjusted a robot program in a 3D or 2D off-line environment and then wishes to take that program to the factory floor.
2. Prior Art
Industrial robots are highly flexible devices used for a wide variety of operations in many different industrial applications. Industrial robots are conventionally programmed via a robot programming language that is very similar to conventional computer programming languages. A robot program includes a sequence of program instructions where each instruction tells the robot control unit what to do and how to do it. Robots are programmed to follow a path including a plurality of target points. The robot program includes the positions of the target points. The programming of robots is a time consuming process and the conventional methods of using the robot during the programming and teaching process ties up the production equipment and delays production start. In order to save time and speed production start, it is highly desirable to program a robot off-line. Conventionally, this is done through a graphical simulation by an off-line programming tool. The programming tool contains a graphical component for generating a graphical 3D representation of the robot and objects in the robot cell, such as work objects and tools, based on graphical models, for example CAD models, of the robot and the objects. The programming tool further contains a graphical means for teaching target points and paths and recording the operations and movements of the robot. The graphical simulation provides a much more natural and easy method for programming and visualizing an industrial robot, without tying down the actual equipment. In addition, the graphical environment allows an independence from the robot programming language used by the robot manufacturer. The output from the simulation is a graphical representation of what the robot should do during operation and the real robot program. When the simulation and off-line programming is completed, the program can be transferred to the real robot.
However, a robot program prepared by an off-line programming system cannot directly be used for operating a robot in a real robot cell, because the positional relationship between the robot and the objects in the off-line environment may deviate from the actual positional relationship between the robot and the objects in the real robot cell. This is traditionally a very difficult problem and has been a hindrance to the adoption of off-line programming in industry.
Accordingly, after generating a robot program based on graphical models of the objects, the positions of the real objects relative the robot must be determined. An object can be any type of object in the robot cell, such as a work piece, a work station, a tool, robot base frame, or external equipment. Usually the actual target positions in the programmed path are related to a reference frame defined in relation to the object, which means that calibrating an object will adjust the related target positions in relation to the common coordinate system. Calibration of a robot cell includes determining the positions of the robot and the objects in the robot cell in relation to a common coordinate system. This is typically done by using the robot as a measuring device. The user jogs the robot to at least three calibration points on the object and the robot positions are recorded for the calibration points. With the term “jogging the robot” is meant that the robot is manually moved by the user, for example by means of a joy stick. The recorded robot positions are then used to determine the relation between the robot and the real objects. Since the relations between the robot and the models of the objects are known, it is possible to determine the relations between the models and the real positions of the object. The real position of the object can then be updated and therefore all the position on the programmed path will be updated since the relation between the position on the programmed path and the object is kept.
A person controlling a robot is denoted a robot operator. In the following the words user and robot operator are used synonymously. When there are many objects to be calibrated, the user has to jog the robot to all of the objects and accordingly to many calibration points on the objects. Further, the order in which the robot visits the calibration points is important for the calibration result. Typically, the user must write down on a piece of paper all of the objects to be calibrated, and the positions of the calibration points. This takes time and is error prone.
After the calibration, there can still be deviations between the models and the real objects in the cell. Before applying the robot program into the production, the robot program has to be checked and corrected, for example to avoid collisions. This means that the off-line generated robot program has to be run on the robot. EP1510894 discloses an apparatus for correcting off-line generated robot programs. The apparatus includes means for stopping execution of the robot program when receiving a stop command, means for displaying the next target point which position is to be corrected on a display screen upon stopping the execution, means for moving the robot by jogging from the position where the execution of the program has been stopped, and means for reflecting the current position of the robot on the next target point of which position is to be corrected, when the position of the target point is corrected. The correction procedure has to be repeated for each target point on the programmed path, which is time consuming.